package com.leoman.service;

import com.leoman.entity.Mind;
import com.leoman.exception.MoneyShortException;
import com.leoman.exception.NoDataException;
import com.leoman.exception.ParamErrorException;
import com.leoman.service.common.ICommonService;
import org.springframework.data.domain.Page;
import org.springframework.web.multipart.MultipartRequest;

/**
 * MindService
 * Created by 涂奕恒 on 2016/11/23 0023 下午 3:53.
 */
public interface MindService extends ICommonService<Mind> {

    // 心事列表（分页）
    Page<Mind> iPageForApp(Integer userId, Integer isMe, Integer pageNum, Integer pageSize);

    // 我的收藏心事列表（分页）
    Page<Mind> iPageForAppCollect(Integer userId, Integer pageNum, Integer pageSize);

    // 我的偷听心事列表（分页）
    Page<Mind> iPageForAppOpen(Integer userId, Integer pageNum, Integer pageSize);

    // 心事详情
    Mind iFindOneForApp(Integer mindId, Integer userId) throws ParamErrorException, NoDataException;

    // 添加心事
    void addMindInfo(Boolean isAdmin, Integer tempId, Integer userId, String title, String content, String openMoney, Integer imgNum, Integer isDraft, MultipartRequest multipartRequest) throws ParamErrorException;

    // 偷听心事
    Integer getMindInfo(Integer userId, Integer mindId) throws ParamErrorException;

    // 获取该用户的心事草稿
    Mind iFindDraftByUserId(Integer userId) throws ParamErrorException, NoDataException;

    // 心事列表（分页）
    Page<Mind> pageByParams(String title, String userName, String startTime, String endTime, Integer pageNum, Integer pageSize);

    // 置顶
    Integer toTop(Integer paperId);

    // 批量删除心事
    Integer batchDelete(String ids);

    // 后台添加心事
    Integer saveMind(String title, String txtVal, String content, String openMoney, MultipartRequest multipartRequest);

    // 修改付款状态
    void changeMoneyStatus(Integer id);

    // 修改付款状态
    void changeMoneyStatusByMoney(Integer sourceId, Double money) throws ParamErrorException, MoneyShortException;
}